package com.itjin.model.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Max;
import java.time.LocalDateTime;

/**
 * 编辑活动DTO
 */
@Data
@Schema(description = "编辑活动请求对象")
public class ActivityEditDTO {

    @Schema(description = "活动ID", required = true)
    @NotNull(message = "活动ID不能为空")
    private Integer id;

    @Schema(description = "活动名称", required = true)
    @NotBlank(message = "活动名称不能为空")
    private String activityName;

    @Schema(description = "活动内容描述")
    private String activityContent;

    @Schema(description = "活动图片URL")
    private String activityImage;

    @Schema(description = "活动时间", required = true)
    @NotNull(message = "活动时间不能为空")
    private LocalDateTime activityTime;

    @Schema(description = "活动地点", required = true)
    @NotBlank(message = "活动地点不能为空")
    private String activityLocation;

    @Schema(description = "活动类型：0-学术讲座，1-文娱活动，2-体育活动，3-社团活动，4-志愿服务，5-其他", example = "0")
    @Min(value = 0, message = "活动类型值不正确")
    @Max(value = 5, message = "活动类型值不正确")
    private Integer activityType;

    @Schema(description = "最大参与人数，0表示无限制", example = "100")
    @Min(value = 0, message = "最大参与人数不能小于0")
    private Integer maxParticipants;

    @Schema(description = "活动状态：0-报名中，1-进行中，2-已结束，3-已取消", example = "0")
    @Min(value = 0, message = "活动状态值不正确")
    @Max(value = 3, message = "活动状态值不正确")
    private Integer activityStatus;

    @Schema(description = "报名截止时间")
    private LocalDateTime registrationDeadline;
} 